package com.fypg.module.blooddonation.api.client.enums;


import com.fypg.framework.common.exception.ErrorCode;

public interface ErrorCodeConstants {
    // 配置相关错误
    ErrorCode BLOOD_STATION_CONFIG_NOT_EXISTS = new ErrorCode(1_001_002_001, "血站配置不存在");
    ErrorCode BLOOD_STATION_CODE_INVALID = new ErrorCode(1_001_002_002, "血站代码无效");

    // Token相关错误
    ErrorCode BLOOD_TOKEN_GET_FAILED = new ErrorCode(1_001_002_003, "获取血站访问令牌失败");
    ErrorCode BLOOD_TOKEN_INVALID = new ErrorCode(1_001_002_004, "血站访问令牌无效");
    ErrorCode BLOOD_TOKEN_EXPIRED = new ErrorCode(1_001_002_005, "血站访问令牌已过期");

    // 网络请求相关错误
    ErrorCode BLOOD_HTTP_REQUEST_FAILED = new ErrorCode(1_001_002_006, "血站服务HTTP请求失败");
    ErrorCode BLOOD_SERVICE_UNAVAILABLE = new ErrorCode(1_001_002_007, "血站服务暂不可用");
    ErrorCode BLOOD_NETWORK_ERROR = new ErrorCode(1_001_002_008, "血站服务网络异常");

    // 数据加解密相关错误
    ErrorCode BLOOD_DATA_ENCRYPT_FAILED = new ErrorCode(1_001_002_009, "血站数据加密失败");
    ErrorCode BLOOD_DATA_DECRYPT_FAILED = new ErrorCode(1_001_002_010, "血站数据解密失败");
    ErrorCode BLOOD_SM4_KEY_INVALID = new ErrorCode(1_001_002_011, "SM4加密密钥无效");

    // 业务操作相关错误
    ErrorCode BLOOD_APPOINTMENT_FAILED = new ErrorCode(1_001_002_012, "献血预约失败");
    ErrorCode BLOOD_APPOINTMENT_QUERY_FAILED = new ErrorCode(1_001_002_013, "查询预约结果失败");
    ErrorCode BLOOD_APPOINTMENT_NOT_FOUND = new ErrorCode(1_001_002_014, "预约记录不存在");
    ErrorCode BLOOD_TIME_SLOT_QUERY_FAILED = new ErrorCode(1_001_002_015, "查询可预约时间段失败");
    ErrorCode BLOOD_PLACE_SCHEDULE_QUERY_FAILED = new ErrorCode(1_001_002_016, "查询地点排班失败");
    ErrorCode BLOOD_DICTIONARY_QUERY_FAILED = new ErrorCode(1_001_002_017, "查询字典数据失败");

    // 参数验证相关错误
    ErrorCode BLOOD_PARAM_VALIDATION_FAILED = new ErrorCode(1_001_002_018, "血站服务参数验证失败");
    ErrorCode BLOOD_ID_CARD_INVALID = new ErrorCode(1_001_002_019, "身份证号码格式错误");
    ErrorCode BLOOD_PHONE_INVALID = new ErrorCode(1_001_002_020, "手机号码格式错误");
    ErrorCode BLOOD_DATE_FORMAT_INVALID = new ErrorCode(1_001_002_021, "日期格式错误");

    // 数据格式相关错误
    ErrorCode BLOOD_JSON_PARSE_FAILED = new ErrorCode(1_001_002_022, "JSON数据解析失败");
    ErrorCode BLOOD_RESPONSE_FORMAT_INVALID = new ErrorCode(1_001_002_023, "血站响应数据格式错误");
    ErrorCode BLOOD_RESPONSE_DATA_INVALID = new ErrorCode(1_001_002_024, "血站响应数据无效");

    // 第三方服务业务错误
    ErrorCode BLOOD_THIRD_PARTY_BUSINESS_ERROR = new ErrorCode(1_001_002_025, "血站服务业务异常");
    ErrorCode BLOOD_THIRD_PARTY_SYSTEM_ERROR = new ErrorCode(1_001_002_026, "血站服务系统异常");

    // 缓存相关错误
    ErrorCode BLOOD_TOKEN_CACHE_FAILED = new ErrorCode(1_001_002_027, "Token缓存操作失败");

    // 重复操作错误
    ErrorCode BLOOD_APPOINTMENT_DUPLICATE = new ErrorCode(1_001_002_028, "重复的献血预约");
    ErrorCode BLOOD_OPERATION_DUPLICATE = new ErrorCode(1_001_002_029, "重复的操作请求");

    // 时间相关错误
    ErrorCode BLOOD_APPOINTMENT_TIME_INVALID = new ErrorCode(1_001_002_030, "预约时间无效");
    ErrorCode BLOOD_APPOINTMENT_TIME_CONFLICT = new ErrorCode(1_001_002_031, "预约时间冲突");
    ErrorCode BLOOD_APPOINTMENT_FULL = new ErrorCode(1_001_002_032, "该时间段预约已满");

    // 献血平台相关错误码
    ErrorCode BLOOD_DONOR_CHECK_FAILED = new ErrorCode(1_001_003_001, "献血核查失败");
    ErrorCode BLOOD_RECORD_QUERY_FAILED = new ErrorCode(1_001_003_002, "献血记录查询失败");
    ErrorCode BLOOD_PLATFORM_SERVICE_ERROR = new ErrorCode(1_001_003_003, "献血平台服务异常");

    ErrorCode BLOOD_Illegal_SM4_KEY = new ErrorCode(1_001_004_001,"SM4密钥配置错误");
    ErrorCode PARAM_ERROR = new ErrorCode(1_001_005_001,"参数错误");

    ErrorCode INVALID_ENCODING = new ErrorCode(1_001_006_001,"血站编码无效");
}
